Encryption is a highly resource-demanding feature, especially if it is implemented in a Network Virtualization Security Platform (like NSX). Since performing data encryption is taxing on CPUs, performing encryption in an NSX environment puts additional demands on the CPU resources. One way to reduce the load on the CPUs is to reduce the size of data to be encrypted since the amount of the CPU resources required to encrypt a data packet is positively correlated to the size of the packet. One way to reduce the size of some data is to compress it.
Introducing compression before encryption in a data processing pipeline may reduce a size of the data, and thus help to conserve the CPU resources required for encryption. However, compressing data also places some demands on the CPU resources. Furthermore, compressing some data may not reduce its size at all. Thus, in some cases, overall CPU utilization will not be reduced and could actually be increased when combining compression with encryption.
However, in cases when data compression reduces a size of data, combining compression with encryption may not only reduce the load on the CPUs, but also increase the overall network throughput.